技術文章
技術問答
My Project
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2022 iThome 鐵人賽
DAY
23
1
自我挑戰組
開始系統測試
系列 第
23
篇
Day 23 | 測試方法(二) - 靜態分析
14th鐵人賽
Pancy
2022-10-08 20:01:14
1476 瀏覽
分享至
靜態分析方法
分析軟體產品(如:需求或程式碼),而不執行這些工作產品,因為不需要運行程式的程式碼,所以稱為「靜態」分析。
靜態分析可以包含下面幾個部份
符合開發的原則和標準
與控制流程(control flow)結合 - 控制流程分析
程式碼複雜度 - 複雜度分析
資料流分析
使用了未定義的變數
變數定義了卻未使用
控制流分析
流程圖是帶有開始和結束點的有向圖
程式的指令是通過結點來表示的
一個沒有分支的指令可以用一個節點表示
指令之間的路徑是通過邊(控制流)來描述的
圖內的開始和結束節點可以忽略
複雜度分析
複雜度分析給出一組能描述程式碼複雜度特徵的度量
循環複雜度(Cyclomatic complexity)
V(G) = e-n+2p
e:邊數
n:節點個數
p:無連接部份的數目(一般p=1)
靜態測試的意義
在測試執行之前盡早發現缺陷
通過度量的計算(例如高複雜性測量),提早警示程式碼和設計可能存在的問題
可以發現動態測試過程中不容易發現的缺陷
可以發現軟體模組間的依賴性和不一致性
改進程式碼跟設計的可維護性
從開發過程中學習經驗教訓,從而預防缺陷
靜態測試可以發現的缺陷
引用一個沒有定義值的變數
從未使用過的變數
模組和組件之間API不一致
不會被執行到的程式碼(unreachable code)或無用程式碼(dead code)
違背開發規則
安全漏洞
程式碼和軟體模型的語法錯誤等
留言
追蹤
檢舉
上一篇
Day 22 | 測試方法(一) - 測試方法的分類與評審制度
下一篇
Day 24 | 白箱測試
系列文
開始系統測試
共
30
篇
目錄
RSS系列文
訂閱系列文
13
人訂閱
26
Day 26 | 性能測試
27
Day 27 | Web測試
28
Day 28 | 手機APP測試(一)
29
Day 29 | 手機APP測試(二)
30
Day 30 | 自動化測試概述
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
194
組
團體組數
5
組
累計文章數
1335
篇
最後報名日
9/15
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
分享資訊人員最佳筆記紀錄方案
表格型pdf 匯入excel
請問TIPTOP T100 Oracle DB正式區複製到測試區
熱門回答
分享資訊人員最佳筆記紀錄方案
表格型pdf 匯入excel
熱門文章
Day 10 RD 有程式碼證明自己做了什麼,那 QA 要拿什麼證明?
船舶應用,近海 4G LTE,航運 Starlink 整合運用
模型到第七頁就忘了那個孩子
使用 Angular、Firebase AI Logic 與 Gemini Nano 打造混合式影像分析應用程式
Claude code 新手篇 5:換 section 不斷線 — 把「當下進度」交接給下一個對話
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}